Real storage may be described as physical storage for storing data. Real storage includes Random Access Memory (RAM) and auxiliary storage. In particular, when RAM is exhausted, files on disk are used. These files are referred to as auxiliary storage. The paging files are referred to as auxiliary storage. Thus, the total real storage is RAM plus auxiliary storage. Virtual storage may be described as multiple, different physical storages that are treated as one “virtual” storage that is directly addressable so that applications can treat all of the designated storages as one addressable storage. An application may be assigned a range of virtual storage addresses (typically 32-bits or 64-bits of addressable storage).
Storage is typically divided into 4K pages. When a given virtual storage page in virtual storage is accessed, a 4K real frame is allocated to house (or back) the data. Thus, a real frame backs each 4K virtual storage page in use.
As database management systems adopt 64-bit addressing to alleviate virtual storage constraints, real storage constraints become an important scaling factor. A technique to bound and control real storage usage has been developed for online database management systems. By controlling real storage demand, available real storage can be maximally shared amongst multiple online database management systems and limit the potential for one database management system to negatively affect the performance of other processes via over consumption of real storage, while at the same time eliminating the need to greatly over-provision real storage. Over consumption of real storage can affect application performance due to paging. In some cases, the operating system image may fail if all auxiliary storage is consumed by an excessive demand for real frames. Thus, controlling real storage consumption is useful for database management system performance and availability.
This is useful in cloud configurations when multiple database management systems are deployed on a single operating system image and have Quality Of Service (QOS) expectations. Database management systems deployed in a cloud configuration typically desire to operate without hindrance from other applications. Cloud QOS guarantees cannot be achieved without the mechanisms to control and manage real storage consumption on a database management system/application level.
Some conventional systems limit real storage at an address space level. However, the limit would not apply to the entire database management system. Limiting real storage at the address space level is typically for applications that use multiple address spaces (or processes). For example, for an application that is limited to three address spaces, the real storage limits apply as the sum of the three address spaces, rather than imposing the real storage limits per address space. In some cases, for more complex applications involving multiple address spaces, a single address space limit is not sufficient. In addition, any common or shared storage is not accounted for or is inaccurately accounted for as it is difficult to determine which address space should be charged for the storage usage.
Some conventional systems limit virtual storage in an operating environment (e.g., a JAVA® Virtual Machine (JVM)) or an address space level. (JAVA is a trademark of Oracle Corporation registered in many jurisdictions worldwide.) However, the amount of real storage used does not correlate well to the amount of virtual storage allocated.